{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n"
     ]
    }
   ],
   "source": [
    "import torchvision\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Load CIFAR-100 dataset without transforming it to tensor\n",
    "cifar100 = torchvision.datasets.CIFAR100(root='../data', train=True, download=True)\n",
    "# Get all class names\n",
    "class_names = cifar100.classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_sample_image(class_index, sample_index):\n",
    "    \"\"\"Retrieve a sample image from the specified class index.\"\"\"\n",
    "    img_list = []\n",
    "    \n",
    "    # Find the images for the specified class index\n",
    "    for i, (img, label) in enumerate(cifar100):\n",
    "        if label == class_index:\n",
    "            if len(img_list) < sample_index + 1:  # Only find the specified index of the image\n",
    "                img_list.append(img.convert('L'))  # Convert to grayscale\n",
    "\n",
    "    # Return the image if found\n",
    "    if len(img_list) > sample_index:\n",
    "        return img_list[sample_index], class_names[class_index]\n",
    "    else:\n",
    "        return None, None\n",
    "\n",
    "def show_image(img, class_name, class_index):\n",
    "    \"\"\"Display the given image with its class name.\"\"\"\n",
    "    if img is not None:\n",
    "        # Convert PIL image to numpy array for display\n",
    "        img_array = np.array(img)\n",
    "        \n",
    "        # Show the image\n",
    "        plt.imshow(img_array, cmap='gray')  # Use 'gray' colormap for grayscale image\n",
    "        plt.title(f'Class: {class_name} (Index: {class_index})')\n",
    "        plt.axis('off')\n",
    "        plt.show()\n",
    "    else:\n",
    "        print(f'No image found for class index {class_index}.')\n",
    "\n",
    "def filter_image(img, filter_size=2, show_filters=True):\n",
    "    \"\"\"Apply Fourier Transform, high-pass and low-pass filters, and return filtered images.\"\"\"\n",
    "    # Convert PIL image to numpy array\n",
    "    img_array = np.array(img)\n",
    "    \n",
    "    # Apply Fourier Transform\n",
    "    f_transform = np.fft.fft2(img_array)\n",
    "    f_transform_shifted = np.fft.fftshift(f_transform)\n",
    "    \n",
    "    # Define low-pass and high-pass filters\n",
    "    rows, cols = img_array.shape\n",
    "    crow, ccol = rows // 2, cols // 2\n",
    "    low_pass_filter = np.zeros((rows, cols))\n",
    "    high_pass_filter = np.ones((rows, cols))\n",
    "    \n",
    "    # Create the filters\n",
    "    low_pass_filter[crow-filter_size//2:crow+filter_size//2, ccol-filter_size//2:ccol+filter_size//2] = 1\n",
    "    high_pass_filter[crow-filter_size//2:crow+filter_size//2, ccol-filter_size//2:ccol+filter_size//2] = 0\n",
    "    \n",
    "    # Apply filters\n",
    "    low_passed = f_transform_shifted * low_pass_filter\n",
    "    high_passed = f_transform_shifted * high_pass_filter\n",
    "    \n",
    "    # Inverse Fourier Transform\n",
    "    low_passed_img = np.fft.ifft2(np.fft.ifftshift(low_passed)).real\n",
    "    high_passed_img = np.fft.ifft2(np.fft.ifftshift(high_passed)).real\n",
    "    \n",
    "    # Plot filters if show_filters is True\n",
    "    if show_filters:\n",
    "        plt.figure(figsize=(10, 5))\n",
    "        \n",
    "        # Low-pass filter\n",
    "        plt.subplot(1, 2, 1)\n",
    "        plt.imshow(low_pass_filter, cmap='gray')\n",
    "        plt.title('Low-Pass Filter')\n",
    "        plt.axis('on')\n",
    "\n",
    "        # High-pass filter\n",
    "        plt.subplot(1, 2, 2)\n",
    "        plt.imshow(high_pass_filter, cmap='gray')\n",
    "        plt.title('High-Pass Filter')\n",
    "        plt.axis('on')\n",
    "        \n",
    "        plt.show()\n",
    "    \n",
    "    return low_passed_img, high_passed_img"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class name: palm_tree,img shape: <PIL.Image.Image image mode=L size=32x32 at 0x230CB07ED50>\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGbCAYAAAAr/4yjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAmm0lEQVR4nO3deXDV9fX/8XPJdpOb3EsCWQjBhJCgsomAqEQFrQI2KNqqiGMFsbjWalVc+lXBBS24VaEgjLQiykxHxVpl7KAjoihVEZVFEcGwK4QlQCB73r8/mJyflwi8D3IF7fMx4x/cnJx87vrikvt5GXDOOQEAQERaHOkDAAAcPQgFAIAiFAAAilAAAChCAQCgCAUAgCIUAACKUAAAKEIBAKAIhZ9QQUGBDB8+/EgfxhETCARkzJgxR/owjirr1q2TYDAo77//fkx/zrPPPiuBQEBWr14d059zpNTV1Um7du1k0qRJR/pQfvYIhcNg1apVcs0110hhYaEEg0EJh8NSUlIiTz75pFRVVR3pw/ufNmnSJHn22WeP9GHs1/333y8nn3yylJSU6GXDhw+X1NTUI3hUsdevXz8JBALN/hs4cOAPzi9atEjOP/98ycjIkJSUFOnSpYs89dRT+vWEhAS55ZZbZOzYsVJdXf1TXY1fpPgjfQA/d7Nnz5aLL75YkpKS5IorrpAuXbpIbW2tzJ8/X0aNGiXLli2TqVOnHunD/J81adIkad269VH5Dq28vFymT58u06dPP9KHckTk5eXJww8/HHVZbm5us7k5c+bIeeedJyeeeKLcc889kpqaKqtWrZL169dHzV155ZVy5513ysyZM2XEiBExPfZfMkLhRygrK5NLL71U8vPz5e2335Y2bdro12644QZZuXKlzJ49+wgeISx2794toVDoJ/t5zz//vMTHx8t55533k/3Mo0kkEpHLL7/8gDM7d+6UK664QkpLS+Wll16SFi32/48bLVu2lP79+8uzzz5LKPwI/PPRjzB+/HiprKyUadOmRQVCk6KiIrnpppv2+/3btm2T2267Tbp27SqpqakSDofl3HPPlc8//7zZ7IQJE6Rz586SkpIi6enp0qtXL5k5c6Z+fdeuXXLzzTdLQUGBJCUlSVZWlpxzzjmyaNEindmzZ48sX75ctmzZctDr1q9fP+nSpYt88skn0qdPH0lOTpb27dvL008/HTVXW1sr9957r/Ts2VMikYiEQiE5/fTTZe7cuQf9GWPGjJFAICArVqyQyy+/XCKRiGRmZso999wjzjlZt26dDB48WMLhsOTk5Mhjjz120J3fV1BQIMuWLZN58+bpP0/069dPRP7/v7HPmzdPrr/+esnKypK8vDz93jfeeENOP/10CYVCkpaWJqWlpbJs2bJmP2P58uVy0UUXSUZGhgSDQenVq5f8+9//9jq+f/3rX3LyySd7/VNRQUGBDBo0SObPny+9e/eWYDAohYWF8txzzzWbXbZsmZx11lmSnJwseXl58uCDD0pjY+MP7j3Y9Xz77belRYsWcu+990Z938yZMyUQCMjkyZP1si1btsjy5ctlz549XtdfRKS+vl4qKyv3+/WZM2fKpk2bZOzYsdKiRQvZvXv3fq+LiMg555wj8+fPl23btnkfA/bhcMjatm3rCgsLvefz8/PdsGHD9M8ff/yx69Chg7vzzjvdlClT3P333+/atm3rIpGI27Bhg85NnTrViYi76KKL3JQpU9yTTz7prrrqKvfHP/5RZy677DKXmJjobrnlFvfMM8+4cePGufPOO889//zzOjN37lwnIm706NEHPda+ffu63Nxcl5WV5f7whz+4p556yp122mlORNy0adN0rry83LVp08bdcsstbvLkyW78+PHu2GOPdQkJCe7TTz+N2rnvzx49erQTEde9e3c3dOhQN2nSJFdaWupExD3++OPu2GOPddddd52bNGmSKykpcSLi5s2b5317v/LKKy4vL88dd9xxbsaMGW7GjBluzpw5zjnn/vGPfzgRcZ06dXJ9+/Z1EyZMcH/5y1+cc84999xzLhAIuIEDB7oJEya4cePGuYKCAteyZUtXVlam+5cuXeoikYjr1KmTGzdunJs4caI744wzXCAQcLNmzTrgsdXW1rrk5GR3yy23NPvasGHDXCgUirosPz/fHXvssS47O9v9+c9/dhMnTnQ9evRwgUDALV26VOe+/fZbl5mZ6dLT092YMWPcI4884oqLi123bt2ciEQdv+/1vOGGG1x8fLz75JNPnHPObdy40WVkZLizzz7bNTY26lzT/Tl37twDXnfn9j6+EhISXGJiohMRl52d7e6++25XW1sbNffb3/7WhcNh9+abb7qOHTs6EXGhUMhde+21rqqqqtne+fPnOxFxr7322kGPAT+MUDhEO3bscCLiBg8e7P09+4ZCdXW1a2hoiJopKytzSUlJ7v7779fLBg8e7Dp37nzA3ZFIxN1www0HnLGGgoi4xx57TC+rqalx3bt3d1lZWfrkra+vdzU1NVHfu337dpedne1GjBgRdfn+QuHqq6/Wy+rr611eXp4LBAL6It20Mzk5Oer289G5c2fXt2/fZpc3hcJpp53m6uvr9fJdu3a5li1bupEjR0bNf/fddy4SiURd/qtf/cp17drVVVdX62WNjY2uT58+rri4+IDHtXLlSicibsKECc2+tr9QEBH37rvv6mWbN292SUlJ7tZbb9XLbr75Zici7sMPP4yai0QiUaFguZ67d+92RUVFrnPnzq66utqVlpa6cDjs1qxZE/W9llAYMWKEGzNmjHv55Zfdc889584//3wnIu6SSy6JmuvWrZtLSUlxKSkp7sYbb3Qvv/yyu/HGG52IuEsvvbTZ3o0bNzoRcePGjTvoMeCHEQqHaN26dU5E3OWXX+79PfuGwvfV19e7LVu2uPLyctetWzd3wQUX6NeGDRvmIpGI++ijjw64u1evXlHvMH6Mvn37uvj4eFdZWRl1+eTJk52IuAULFjT7noaGBrd161ZXXl7uSktLXffu3aO+vr9Q2Pd6XXDBBU5EXHl5edTl3bt3d6effrrpehwsFKZPnx51+axZs5yIuLffftuVl5dH/de/f39XVFTknHNu69atLhAIuAceeKDZ3H333edExK1fv36/x/Xhhx86EYl6J9dkf6HQqVOnZrPdunVzF154of65Y8eO7pRTTmk2d/3110eFgu/1bDJ//nzXokUL17t372bvFg+XkSNHNntsFRYWOhFx1157bdTsNddc40TErVixIuryqqoqJyJu1KhRh/34/lfwO4VDFA6HRWTvv+UfqsbGRnniiSekuLhYkpKSpHXr1pKZmSmLFy+WHTt26Nwdd9whqamp0rt3bykuLpYbbrih2efax48fL0uXLpV27dpJ7969ZcyYMfLNN98c8rGJ7P0kyL6/eO3YsaOISNTn3adPny7dunWTYDAorVq1kszMTJk9e3bUdTiQY445JurPkUhEgsGgtG7dutnl27dvP4Rrsn/t27eP+vPXX38tIiJnnXWWZGZmRv03Z84c2bx5s4iIrFy5Upxzcs899zSbGz16tIiIzh6IM/yPD/e9nURE0tPTo26TNWvW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oqLCtHvXrl2m+dzcXO9Z6/PHUs9SWVlp2r1kyRLv2fT0dNPuhoYG71lrtYSV5bEViURittt631NzAQA4ahAKAABFKAAAFKEAAFCEAgBAEQoAAEUoAAAUoQAAUIQCAEARCgAARSgAAJR391E4HDYtrq+v95619qu0b9/ee9bSZSRi626x9vbEUm1tbcx2b9q0yTS/fft279lTTjnFejjetm7dapq39kG1bNnSezYjIyNmx/Lpp5+adlv6oyzPNRGR+HjvlxTT40REpKamxjRvYe29qqqq8p613CYitk6ouro6026vn3/YNwIAfrYIBQCAIhQAAIpQAAAoQgEAoAgFAIAiFAAAilAAAChCAQCgCAUAgPI+/7pfv34xO4isrCzTvOU0cEtthYjInj17vGdPOukk027Laf2bN2827d65c6dpPhAIeM9WVFSYdm/YsMF7dt68eabdubm53rONjY2m3ZbbRESkurrae9Zac7F48WLvWWudx9lnn+09GwqFTLst9Q+pqamm3SkpKaZ5a71ErHbHxcWZdlsqgqyvbz54pwAAUIQCAEARCgAARSgAABShAABQhAIAQBEKAABFKAAAFKEAAFCEAgBAEQoAAOVd4NGhQwfT4oSEBO/Z2tpa025Lp42ly0jE1sNk7YVJTk72nrX2tlj7o7Zs2eI9a73vLZ02X331lWm3pVunVatWMdstIvLdd995z1q6jEREXn31Ve/ZvLw80+4VK1Z4z+bk5Jh2Wx7j1r4uS9eUiEhdXZ337O7du027k5KSvGetz03L64q1r8sH7xQAAIpQAAAoQgEAoAgFAIAiFAAAilAAAChCAQCgCAUAgCIUAACKUAAAKO8uhYqKCtPicDjsPRsMBk27nXPes5bT0UVEWrTwz8n169ebdqelpXnPZmRkmHY3NDSY5i23ubXOIy4uznt2+/btpt2WigbrY9ZSWyFiqxh46623TLvbtGnjPWt5XImIfPDBB96zluexiO35VllZadpteVyJiPTq1ct71lrnEYlEvGdTUlJMu63zhxvvFAAAilAAAChCAQCgCAUAgCIUAACKUAAAKEIBAKAIBQCAIhQAAIpQAAAoQgEAoLy7j9q2bWtabOkpsXYI7d6923t2x44dpt319fXes5aeJBGR5ORk71lr/4mlD0rE1n20a9cu0+7q6mrTvIXlvrc+riz3vYhIdna2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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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Tz75pGdaWFiYZ0d69OhRHT161LPM4OBgryBzySWX6MUXX/TcRrNNmzaKioryTP/pp5+UnZ2tefPm6bvvvvO6lqeoqMjz74cffliDBg1S27ZtlZycrH79+unWW2/1nO7ldDr15z//WVOnTlV0dLSuuOIKXX/99brtttsqfT1QWlraWW8eUFU7duyQMUYPPvigHnzwwTPOc+DAAa9gk5iY6NcaAOBC6969u+di/J+76KKLzniK2s99++23Sk1NrTC+devWZ5y/RYsWZ/ycH3/8UdKpH/gOHjzoNT0iIsLrTpflQaxevXqKjo5WUlKSVzBZtmyZHnnkEW3atMnrmhOHw+H59/Dhw/XSSy/pjjvu0AMPPKD09HQNGTJEw4YN8yzr/vvv18cff6zu3burdevW6tOnj0aOHKkePXr84ndSrk2bNhVCmD9s375dX3/9tVf//rkDBw54vaZP1U0EG1glNjZWiYmJWrNmjS655BIZY5SamqrIyEjdfffd+vbbb7V27VpdeeWVnp30k08+6bnNsXTqV66fX9jZuHHjX9wJT5w4UfPmzdPkyZOVmpoql8slh8OhESNGeD3rJi0tTTt37tTSpUv14Ycf6qWXXtKsWbM0d+5c3XHHHZKkyZMna+DAgVqyZIk++OADPfjgg8rOztbKlSv1q1/9ys/fVuWUr8O9996rvn37nnGe05u1P44UAUBdcbYj3OU/lOXn51f4Q3zVqlVet+Y/WxCTTv2gd8MNNygtLU3PP/+8mjdvrvr162vevHleF/03bNhQa9as0apVq/T3v/9dy5cv11tvvaVrrrlGH374oYKDg9W+fXvl5eVp2bJlWr58ud599109//zzeuihh7x66YVWVlamTp06aebMmWecHh8f7/WaPlU3EWwQcJGRkWrUqJHy8vIqTNu2bZuCgoK8dli9evXSmjVrlJiYqEsvvVShoaHq0qWLXC6Xli9fri+++MJr53vbbbepZ8+ente+7uzeeecdjRo1Sn/5y18840pKSnT48OEK80ZEROj222/X7bffrqNHjyotLU3Tp0/3BBtJatWqlaZOnaqpU6dq+/btuvTSS/WXv/xFr7/+uk91+ernv9r9XPnpf/Xr16+WX9kAoLZJSEjQjh07Kow/07jKiImJ8bqDpuTb6VvvvvuuGjRooA8++MDrBgbz5s2rMG9QUJDS09OVnp6umTNn6tFHH9Uf/vAHrVq1ytMDGjdurOHDh2v48OE6fvy4hgwZov/+7/9WVlZWtd8y+Wy9qlWrVvrXv/6l9PT0s84DcLtnBFxwcLD69OmjpUuXeh1JKSws1MKFC9WzZ0+v60p69eql3bt366233vKcmhYUFKQrr7xSM2fO1IkTJ7zOZW7ZsqUyMjI8Q2UPp/+8vp+ffiaduhXm6edgHzp0yOt1kyZN1Lp1a88pAceOHVNJSYnXPK1atVJoaGiFW1VWh/K7t50eyKKiotS7d2+98MIL2r9/f4X3nX56BADUdX379lVubq42bdrkGffDDz9owYIFVVpegwYNvPpURkaGT9dhBgcHy+FwePWl3bt3V7hT2Ol31pTkuU6ovA+d3stCQkLUoUMHGWMqdce489W4cWOv07zL/frXv9Z3332nF198scK0n376iTt0QhJHbHABvfLKK2e8j/zdd9+tRx55xHNv/fHjx6tevXp64YUXVFpaqscff9xr/vLQkpeXp0cffdQzPi0tTe+//76cTmeVLng8m+uvv16vvfaaXC6XOnTooNzcXH388ceeW2yW69Chg3r37q2uXbsqIiJC69ev1zvvvKMJEyZIkr755hulp6fr17/+tTp06KB69epp8eLFKiws1IgRI/xW79k0bNhQHTp00FtvvaW2bdsqIiJCycnJSk5O1uzZs9WzZ0916tRJd955p1q2bKnCwkLl5uZq7969+te//lXt9QGALe677z69/vrruvbaazVx4kTP7Z5btGihH3744YIfURgwYIBmzpypfv36aeTIkTpw4IBmz56t1q1ba/PmzZ75Hn74Ya1Zs0YDBgxQQkKCDhw4oOeff15xcXGeMxv69OmjmJgY9ejRQ9HR0fr666/13HPPacCAAQoNDa32denataveeustTZkyRd26dVOTJk00cOBA3XrrrVq0aJHGjh2rVatWqUePHjp58qS2bdumRYsW6YMPPjjrqXqoOwg2uGDmzJlzxvGjR49Wx44dtXbtWmVlZSk7O1tlZWVKSUnR66+/rpSUFK/5k5KSFBUVpQMHDnidYlYeeLp37+7Xpxs//fTTCg4O1oIFC1RSUqIePXro448/rnA9yqRJk/S3v/1NH374oUpLS5WQkKBHHnlEv/vd7ySdOv/35ptv1ooVK/Taa6+pXr16ateunRYtWqShQ4f6rd5f8tJL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AMB6BBsAAAAA1iPYAAAAALAewQYAAACA9Qg2AAAAAKxHsAEAAABgPYINAAAAAOsRbAAAAABYj2ADAAAAwHoEGwAAAADWI9gAAAAAsB7BBgAAAID1CDYAAAAArEewAQAAAGA9gg0AAAAA6xFsAAAAAFiPYAMAAADAegQbAAAAANarF+gCgEAxxgS6BJ85HI5AlwAAqEY27udt7KeonThiAwAAAMB6BBsAAAAA1iPYAAAAALAewQYAAACA9Qg2AAAAAKxHsAEAAABgPYINAAAAAOsRbAAAAABYj2ADAAAAwHoEGwAAAADWI9gAAAAAsB7BBgAAAID1fA42a9as0cCBAxUbGyuHw6ElS5Z4TR89erQcDofX0K9fP3/VCwCAF/oSAECqQrApLi5Wly5dNHv27LPO069fP+3fv98zvPHGG+dVJAAAZ0NfAgBIUj1f39C/f3/179//F+dxOp2KiYmpclEAAFQWfQkAIFXTNTarV69WVFSUkpKSNG7cOB06dKg6PgYAgEqhLwFA7efzEZtz6devn4YMGaLExETt3LlTv//979W/f3/l5uYqODi4wvylpaUqLS31vHa73f4uCQBQh/nalyR6EwDYyO/BZsSIEZ5/d+rUSZ07d1arVq20evVqpaenV5g/OztbM2bM8HcZAABI8r0vSfQmALBRtd/uuWXLlmrWrJl27NhxxulZWVkqKiryDPn5+dVdEgCgDjtXX5LoTQBgI78fsTnd3r17dejQITVv3vyM051Op5xOZ3WXAQCApHP3JYneBAA28jnYHD161OtXrl27dmnTpk2KiIhQRESEZsyYoaFDhyomJkY7d+7Ufffdp9atW6tv375+LRwAAIm+BAA4xWGMMb68YfXq1br66qsrjB81apTmzJmjwYMHa+PGjTp8+LBiY2PVp08f/elPf1J0dHSllu92u+VyuXwpCagSH//TrxEcDkegS0AdUVRUpLCwsECXUSnV3Zek//Qmm74X2MnG/byN/RT28GX/63OwqW4EG1woNew//UqxseHBTvwB741ggwvFxv28jf0U9vBl/1vtNw8AAAAAgOpGsAEAAABgPYINAAAAAOsRbAAAAABYj2ADAAAAwHoEGwAAAADWI9gAAAAAsB7BBgAAAID1CDYAAAAArEewAQAAAGA9gg0AAAAA6xFsAAAAAFiPYAMAAADAegQbAAAAANYj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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAGKCAYAAACLuTc4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABA1UlEQVR4nO3dd5hV1bnH8ffMmdPmTGOGoQsivUWu2JCqqETBErsmAbHExJ6Ya5Kbx1gjJjGWxIZRSST4qMi13JjYIgZUUrygwQI2ioDizADTy5lz1v3DZ87lMIO8r67tYPL9PI/PI2d+s2advddea7+zz+wdcs45AQAAAACP8rq6AwAAAAD+9VBoAAAAAPCOQgMAAACAdxQaAAAAALyj0AAAAADgHYUGAAAAAO8oNAAAAAB4R6EBAAAAwDsKDQAAAADeUWjgS+2FF16QUCgkL7zwQva1M888U/bee+8u65PVl62/AP497L333nLmmWd+5u+dOXOm3w59Se28HTtbt/ZkX7b+Ys9CoRGg3/72txIKheSVV17p6q50MHXqVAmFQtn/ysrK5IADDpD77rtPMplMV3cv66qrrsrp547/3XXXXao2Ghsb5aqrrvrST5JTp06V0aNHd3U3AHwJ7W492tPml/b+tv8Xj8dl6NChcuGFF8qWLVu6untZ69at2+UadfDBB6vbeeCBB+SWW24JrqNfgD35nAddJ7+rO4Cu069fP5k7d66IiFRWVsr9998vZ599trz99ttyww03dHHvct15551SWFiY89pBBx0kgwYNkqamJolGo7v83sbGRrn66qtF5JPFFACwe2vWrJG8vK79feQ111wjAwcOlObmZnnxxRflzjvvlD/+8Y/y+uuvS0FBQZf2bUenn366HH300TmvVVRUiIhuOz7wwAPy+uuvy6WXXhpUF4EuQaHxb6ykpES+8Y1vZP993nnnybBhw+S2226Ta6+9ViKRSBf2LtdJJ50k3bt37/Rr8Xj8C+7NJxoaGiSZTHbJzwaAoMVisa7ughx11FGy//77i4jIOeecI+Xl5XLTTTfJ448/LqeffnoX9+7/7bfffjnr6Y66ajtmMhlpbW3tsjUSEOGjU3uElStXylFHHSXFxcVSWFgo06ZNk7/+9a/Zr2/fvl3C4bD86le/yr5WVVUleXl5Ul5eLs657Ovf+c53pFevXp+pHwUFBXLwwQdLQ0ODVFZWyvr16+X888+XYcOGSSKRkPLycjn55JNl3bp1Od+XSqXk6quvliFDhkg8Hpfy8nKZOHGiPPvss9nMRx99JHPmzJF+/fpJLBaT3r17y3HHHdehLavdfXZ03bp12d8qXX311dlL2ldddVU2s3r1ajnppJOkrKxM4vG47L///vLEE0/ktNN+Sfgvf/mLnH/++dKjRw/p169f9ut/+tOfZNKkSZJMJqWoqEhmzJghb7zxRof+PPbYYzJ69GiJx+MyevRoefTRRz/X+w+FQnLhhRfKokWLZOTIkZJIJGT8+PGyatUqERGZN2+eDB48WOLxuEydOrXD9l62bJmcfPLJ0r9/f4nFYrLXXnvJd7/7XWlqaurws9p/xo597+zvSzKZjNxyyy0yatQoicfj0rNnTznvvPNk27Ztn+u9AvhidfY3Gv/85z9lypQpkkgkpF+/fnLdddfJ/PnzJRQKdTqfv/jii3LggQdKPB6XffbZR+6///7P1afDDjtMRETWrl0rIiI33nijHHLIIVJeXi6JRELGjRsnjzzySIfve/bZZ2XixIlSWloqhYWFMmzYMPmv//qvnMyvf/1rGTVqlBQUFEi3bt1k//33lwceeOBz9Vdk93/rMnXqVHnyySdl/fr12TVqx3m1paVFrrzyShk8eHB2nr788sulpaUlp5329WDhwoUyatQoicVi8tRTT4mIyKZNm+Sss86Snj17SiwWk1GjRsl9993XoS8bN26U448/XpLJpPTo0UO++93vdvg5FmeeeaYUFhbKhg0bZObMmVJYWCh9+/aV22+/XUREVq1aJYcddpgkk0kZMGBAh+29detW+f73vy9jxoyRwsJCKS4ulqOOOkpee+21Dj9r/fr1cuyxx+b0/emnn+70HOFvf/ubfPWrX5WSkhIpKCiQKVOmyEsvvfSZ3yd2jSsaXeyNN96QSZMmSXFxsVx++eUSiURk3rx5MnXqVPnLX/4iBx10kJSWlsro0aNl6dKlcvHFF4vIJ5N3KBSSrVu3yptvvimjRo0SkU9OHCdNmvSZ+/P+++9LOByW0tJS+eMf/ygvv/yynHbaadKvXz9Zt26d3HnnnTJ16lR58803s5etr7rqKpk7d66cc845cuCBB0ptba288sorsmLFCjniiCNEROTEE0+UN954Qy666CLZe++95eOPP5Znn31WNmzYoPpD6K1bt+b8OxwOS7du3Xb7fRUVFXLnnXfKd77zHfna174mJ5xwgoiIfOUrXxGRT7b/hAkTpG/fvvLDH/5QksmkPPzww3L88cfL4sWL5Wtf+1pOe+eff75UVFTIT37yE2loaBARkQULFsjs2bNl+vTp8rOf/UwaGxvlzjvvlIkTJ8rKlSuz7++ZZ56RE088UUaOHClz586V6urqbPH1eSxbtkyeeOIJueCCC0REZO7cuTJz5ky5/PLL5Y477pDzzz9ftm3bJj//+c/lrLPOkueffz77vYsWLZLGxkb5zne+I+Xl5fL3v/9dfv3rX8vGjRtl0aJF2dyTTz4pp556qowZM0bmzp0r27Ztk7PPPlv69u3boT/nnXee/Pa3v5U5c+bIxRdfLGvXrpXbbrtNVq5cKS+99NIedaUM+HdTU1MjVVVVHV5PpVK7/d5NmzbJoYceKqFQSH70ox9JMpmUe+65Z5e/sX/33XflpJNOkrPPPltmz54t9913n5x55pkybty47Jpl9d5774mISHl5uYiI3HrrrXLsscfK17/+dWltbZUHH3xQTj75ZPnDH/4gM2bMEJFP5vmZM2fKV77yFbnmmmskFovJu+++m3Ni+Zvf/EYuvvhiOemkk+SSSy6R5uZm+ec//yl/+9vf5IwzzthtvxobGzts15KSEtV89+Mf/1hqampk48aNcvPNN4uIZD8qnMlk5Nhjj5UXX3xRvvWtb8mIESNk1apVcvPNN8vbb78tjz32WE5bzz//vDz88MNy4YUXSvfu3WXvvfeWLVu2yMEHH5wtRCoqKuRPf/qTnH322VJbW5v9uFZTU5NMmzZNNmzYIBdffLH06dNHFixYkLNmfBbpdFqOOuoomTx5svz85z+XhQsXyoUXXijJZFJ+/OMfy9e//nU54YQT5K677pJZs2bJ+PHjZeDAgSLyyTnJY489JieffLIMHDhQtmzZIvPmzZMpU6bIm2++KX369BGRTz5hcNhhh8mHH34ol1xyifTq1UseeOABWbJkSYf+PP/883LUUUfJuHHj5Morr5S8vDyZP3++HHbYYbJs2TI58MADP9f7xU4cAjN//nwnIu4f//jHLjPHH3+8i0aj7r333su+tnnzZldUVOQmT56cfe2CCy5wPXv2zP77e9/7nps8ebLr0aOHu/POO51zzlVXV7tQKORuvfXW3fZtypQpbvjw4a6ystJVVla6t956y1188cVORNwxxxzjnHOusbGxw/ctX77ciYi7//77s6/tu+++bsaMGbv8Wdu2bXMi4n7xi1/stl87u/LKK52IdPhvwIABzjnnlixZ4kTELVmyJPs9s2fPzn7dOecqKyudiLgrr7yyQ/vTpk1zY8aMcc3NzdnXMpmMO+SQQ9yQIUOyr7Xvy4kTJ7q2trbs63V1da60tNSde+65Oe1+9NFHrqSkJOf1sWPHut69e7vt27dnX3vmmWdy3s+nmTJlihs1alTOayLiYrGYW7t2bfa1efPmORFxvXr1crW1tdnXf/SjHzkRycl2to/nzp3rQqGQW79+ffa1MWPGuH79+rm6urrsay+88EKHvi9btsyJiFu4cGFOm0899VSnrwP4YrTPYZ/2387zy4ABA9zs2bOz/77oootcKBRyK1euzL5WXV3tysrKOswtAwYMcCLili5dmn3t448/drFYzF122WXq/j733HOusrLSffDBB+7BBx905eXlLpFIuI0bNzrnOs5hra2tbvTo0e6www7LvnbzzTc7EXGVlZW7/HnHHXdch/evsXbt2l1uz/Z1aeft2Nm6NWPGjE7XgQULFri8vDy3bNmynNfvuusuJyLupZdeyr4mIi4vL8+98cYbOdmzzz7b9e7d21VVVeW8ftppp7mSkpLsNrzllluciLiHH344m2loaHCDBw/u0N/OdHbOM3v2bCci7vrrr8++tm3bNpdIJFwoFHIPPvhg9vXVq1d3WKubm5tdOp3O+Tlr1651sVjMXXPNNdnXfvnLXzoRcY899lj2taamJjd8+PCcvmcyGTdkyBA3ffp0l8lkstnGxkY3cOBAd8QRR3zqe4QdH53qQul0Wp555hk5/vjjZZ999sm+3rt3bznjjDPkxRdflNraWhERmTRpkmzZskXWrFkjIp/8Fnvy5MkyadIkWbZsmYh8cpXDOae+orF69WqpqKiQiooKGTFihPz617+WGTNmZC+nJhKJbDaVSkl1dbUMHjxYSktLZcWKFdmvlZaWyhtvvCHvvPNOpz8nkUhINBqVF1544TN/fGbx4sXy7LPPZv9buHDhZ2pnR1u3bpXnn39eTjnlFKmrq5OqqiqpqqqS6upqmT59urzzzjuyadOmnO8599xzJRwOZ//97LPPyvbt2+X000/Pfn9VVZWEw2E56KCDsr9N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l6effjrnD9Lnz5/fIZuXlyfTpk2TadOmyU033STXX3+9/PjHP5YlS5Zk5+5kMimnnnqqnHrqqdLa2ionnHCC/PSnP5Uf/ehHgd8idlfr1KBBg+S1116TadOm7TLzaSoqKqSoqEjS6fRu17kBAwbI66+/Ls65nJ/VVWuUyCfnIYceeqjce++9Oa9v374951MOAwYMkDfffLND3ztbo0Q++bRBEFeg0BF/o9GFwuGwHHnkkfL444/nXGnYsmWLPPDAAzJx4sTsR29EPik01q1bJw899FD2o1R5eXlyyCGHyE033SSpVCrn87D77LOPHH744dn/tJeAd+zfjr9ZEPnk9n87XroUEamurs75d2FhoQwePDh7GbuxsVGam5tzMoMGDZKioqLPdds8rfa7Y+1cIPXo0UOmTp0q8+bNkw8//LDD9+18Sb8z06dPl+LiYrn++us7vWtLexu9e/eWsWPHyu9+97ucj509++yz8uabb1rejjftv03acR875+TWW2/NyfXp00dGjx4t999/f85H8f7yl79kb6Pb7pRTTpF0Oi3XXntth5/X1tbWaZEK4Mth+vTpsnz5cnn11Vezr23duvUz/81cPB7PWaMOP/xw00dWwuGwhEKhnDVp3bp1He7EtPNdC0Uk+9vs9jVo53UsGo3KyJEjxTmnuiPX55VMJnPWhnannHKKbNq0SX7zm990+FpTU1P27oe7Eg6H5cQTT5TFixfL66+/3uHrO65zRx99tGzevDnn9sCNjY27/MjVF6Gz85BFixZ1+PvJ6dOny6ZNm3JuTd/c3Nxhu40bN04GDRokN954Y8561k6z7sOGKxpfgPvuuy97L+sdXXLJJXLddddl7+99/vnnS35+vsybN09aWlrk5z//eU6+vYhYs2aNXH/99dnXJ0+eLH/6058kFovJAQcc4K3fM2fOlAULFkhJSYmMHDlSli9fLs8991zO5yJFPvmDv6lTp8q4ceOkrKxMXnnlFXnkkUfkwgsvFBGRt99+W6ZNmyannHKKjBw5UvLz8+XRRx+VLVu2yGmnneatv7uSSCRk5MiR8tBDD8nQoUOlrKxMRo8eLaNHj5bbb79dJk6cKGPGjJFzzz1X9tlnH9myZYssX75cNm7c2Om9undUXFwsd955p3zzm9+U/fbbT0477TSpqKiQDRs2yJNPPikTJkyQ2267TUQ+ue3sjBkzZOLEiXLWWWfJ1q1bs/dt72zCC9rw4cNl0KBB8v3vf182bdokxcXFsnjx4k7/YP/666+X4447TiZMmCBz5syRbdu2yW233SajR4/O6fuUKVPkvPPOk7lz58qrr74qRx55pEQiEXnnnXdk0aJFcuutt+b8oSGAL4/LL79cfv/738sRRxwhF110Ufb2tv3795etW7d+pt+4fx4zZsyQm266Sb761a/KGWecIR9//LHcfvvtMnjwYPnnP/+ZzV1zzTWydOlSmTFjhgwYMEA+/vhjueOOO6Rfv37Zq/5HHnmk9OrVSyZMmCA9e/aUt956S2677TaZMWNGzk01gjJu3Dh56KGH5Hvf+54ccMABUlhYKMccc4x885vflIcffli+/e1vy5IlS2TChAmSTqdl9erV8vDDD8vTTz+9y4+WtbvhhhtkyZIlctBBB8m5554rI0eOlK1bt8qKFSvkueeeyxZi5557rtx2220ya9Ys+d///V/p3bu3LFiwoEufwD5z5ky55pprZM6cOXLIIYfIqlWrZOHChTk30BH55Lbqt912m5x++ulyySWXSO/evWXhwoXZK1HtYzMvL0/uueceOeqoo2TUqFEyZ84c6du3r2zatEmWLFkixcXF8j//8z9f+Pv8l/aF3+fq38jubif4wQcfOOecW7FihZs+fborLCx0BQUF7tBDD3Uvv/xyp2326NHDiYjbsmVL9rUXX3zRiYibNGmSum+d3Sp1Z9u2bXNz5sxx3bt3d4WFhW769Olu9erVHW7Vd91117kDDzzQlZaWukQi4YYPH+5++tOfutbWVuecc1VVVe6CCy5ww4cPd8lk0pWUlLiDDjoo5xZ6u9J+e9td3ZZQc3tb55x7+eWX3bhx41w0Gu1w+7z33nvPzZo1y/Xq1ctFIhHXt29fN3PmTPfII49kM7u7VfGSJUvc9OnTXUlJiYvH427QoEHuzDPPdK+88kpObvHixW7EiBEuFou5kSNHuv/+7//utL+d2dXtbS+44IKc19pvt7jz7YTbt9WiRYuyr7355pvu8MMPd4WFha579+7u3HPPda+99poTETd//vyc73/wwQfd8OHDXSwWc6NHj3ZPPPGEO/HEE93w4cM79PXuu+9248aNc4lEwhUVFbkxY8a4yy+/3G3evHm37xOAf7ubwzqbX3ae651zbuXKlW7SpEkuFou5fv36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",
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Example usage\n",
    "class_index = 56  # Modify to the desired class index\n",
    "sample_index = 4  # Modify to the desired sample index\n",
    "\n",
    "# Get the image and show it\n",
    "img, class_name = get_sample_image(class_index, sample_index)\n",
    "print(f\"Class name: {class_name},img shape: {img}\")\n",
    "\n",
    "show_image(img, class_name, class_index)\n",
    "\n",
    "# Filter the image and show the results\n",
    "if img is not None:\n",
    "    low_passed_img, high_passed_img = filter_image(img, filter_size=4, show_filters=True)\n",
    "\n",
    "    # Show low-pass and high-pass filtered images on the same figure\n",
    "    plt.figure(figsize=(10, 5))\n",
    "    plt.subplot(1, 2, 1)\n",
    "    plt.imshow(low_passed_img, cmap='gray')\n",
    "    plt.title('Low-Pass Filtered Image')\n",
    "    plt.axis('off')\n",
    "\n",
    "    plt.subplot(1, 2, 2)\n",
    "    plt.imshow(high_passed_img, cmap='gray')\n",
    "    plt.title('High-Pass Filtered Image')\n",
    "    plt.axis('off')\n",
    "\n",
    "    plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
